Disk drives are commonly employed in workstations, personal computers, portables and other computer systems to store large amounts of data in a readily-available form. Typically, the primary components of a disk drive are a head disk assembly, and a printed circuit board assembly having a disk drive control system mounted thereon, which when fixed to one another form a functional unit that is then connected to a computer, such as by insertion into a bay of a host computer.
A disk drive control system typically includes a microprocessor, a buffer or memory manager, and several memory arrays such as dynamic random access memory (DRAM), static random access memory (SRAM), and non volatile memory such as read only memory (ROM), which communicate over one or more busses for transfer of digital data. The buffer manager arbitrates shared access to the information stored in the DRAM between the microprocessor and various components of the disk drive that periodically access the stored data.
Preferably, a cache system is employed to improve microprocessor performance by caching program data in a small cache memory which provides significantly faster access time than the aforementioned shared DRAM array. In many contemporary control systems, the cache memory is embedded in an integrated circuit for improved speed and economy. In alternative embodiments, the cache memory may be in one or more separate external integrated circuits. For either the internal or external case, the cache memory is relatively expensive, therefore an inefficient cache design may create a cost penalty.
Accordingly, what is needed is an improved cache memory architecture which provides improved microprocessor performance without incurring a disproportionate cost penalty.